package com.hyts.serialize.json;

/**
 * project-name:coffice-toolbox
 * package-name:com.hyts.serialize.handler
 * author:Libo/Alex
 * create-date:2019-06-21 20:58
 * copyright:libo-hyts-github
 * email:libo2dev@aliyun.com
 * description:此类主要用于: json序列号服务工具实现
 */
public interface JsonSerializeHandler<R> {

    /**
     * bean对象转换为初始操作
     * java对象转换JSON对象
     * @param param
     * @return
     */

    <P> R buildJSONObject(P param);

    /**
     * bean对象转换为初始操作
     * java对象转换json字符串
     * @param param
     * @return
     */
    <P> String buildJSONString(P param);


    /**
     * bean对象转换为初始操作
     * json字符串对象转换json对象
     * @param jsonStr
     * @param <P>
     * @return
     */
    <P> R buildJSONObject(String jsonStr);

    /**
     * 转换为对应的json对象
     * json字符串转换Java对象
     * @param jsonStr
     * @return
     */
    <P> P buildBean(String jsonStr,Class<P> clazzType);


    /**
     * 转换为对应的json对象
     * json字符串转换Object对象
     * @param jsonStr
     * @param <P>
     * @return
     */
    Object buildBean(String jsonStr);




}
